#include <iostream>

//  单例模式：一个类只创建一个对象
//  1.构造函数私有化
//  2.构建静态函数
//  3.定义静态对象，返回对象指针
class Singleton
{
public:
    static Singleton* getInstance()
    {
        static Singleton s;  // 静态局部变量，确保只创建一次
        return &s;
    }
private:
    Singleton(){}   // 构造函数私有化，防止外部创建实例
};

int main()
{
    Singleton *t1 = Singleton::getInstance();
    Singleton *t2 = Singleton::getInstance();
    Singleton *t3 = Singleton::getInstance();
    printf("%p %p %p\n",t1,t2,t3);  // 地址相同
    return 0;
}
